﻿using System;
using System.Collections.Generic;
using UnityEngine;
public class Stat
{
    private float  value;
    private List<float> addModifiers;
    private List<float> subModifiers;
    
    public Stat()
    {
        InitModifiers();
    }
    
    public void SetValue(float value)
    {
        this.value = value;
    }
    
    public float GetValue()
    {
        float total = value;
        foreach (var modifier in addModifiers)
        {
            total += modifier;
        }
        foreach (var modifier in subModifiers)
        {
            total -= modifier;
        }
        return total;
    }
    
    public void AddAddModifier(float modifier)
    {
        addModifiers.Add(modifier);
    }

    public void RemoveAddModifier(float modifier)
    {
        addModifiers.Remove(modifier);
    }
    
    public void AddSubModifier(float modifier)
    {
        subModifiers.Add(modifier);
    }
    
    public void RemoveSubModifier(float modifier)
    {
        subModifiers.Remove(modifier);
    }

    public void ClearModifiers()
    {
        addModifiers.Clear();
        subModifiers.Clear();
    }

    private void InitModifiers()
    {
        if (addModifiers==null)
        {
            addModifiers = new List<float>();
        }
        if (subModifiers==null)
        {
            subModifiers = new List<float>();
        }   
    }
}